User centric programming.
nProgram is not in charge.
nThe flow of control is not fixed.
User/system creates high level software events.
nAction button has been pressed ...
nLeft mouse button has been released ...
nWindow has been closed ...
nScrollbar was adjusted ...
Program processes events.
nDifferent design
patterns exist of how system creates events
and program should handle the events.